home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 24
/
Amiga Format AFCD24 (Feb 1998, Issue 108).iso
/
-in_the_mag-
/
emulation
/
amiga
/
uae-0.7.0b2
/
src
/
xdebug.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-01-20
|
55KB
|
1,590 lines
/*
* UAE - The Un*x Amiga Emulator
*
* XGUI and XDebugger
*
* Copyright 1996 Christian Schmitt <schmittc@uni-freiburg.de>
*/
#include "sysconfig.h"
#include "sysdeps.h"
#include <ctype.h>
#include <signal.h>
#if FORMS_H_VARIANT == 0
#include <forms.h>
#else
#include <X11/forms.h>
#endif
#include "config.h"
#include "options.h"
#include "threaddep/penguin.h"
#include "uae.h"
#include "memory.h"
#include "custom.h"
#include "readcpu.h"
#include "machdep/m68k.h"
#include "newcpu.h"
#include "debug.h"
#include "cia.h"
#include "disk.h"
#include "xwin.h"
#include "gui.h"
int debugger_active = 0;
static uaecptr skipaddr;
static int do_skip;
int debugging = 0;
static char exit_debug;
static char custom = 0, fpu = 0, memory = 0, disasm = 0;
static uae_s32 xgui_debug_adress,xgui_memory_adress,xgui_disasm_adress;
/* First the Forms stuff */
FL_FORM *Control;
FL_OBJECT
*udf0,
*I_df3,
*DF0,
*Reset,
*Debug,
*Exit,
*Power,
*Text_1,
*Text_2,
*E_df0,
*I_df0,
*E_df1,
*I_df1,
*E_df2,
*I_df2,
*E_df3,
*Led_0,
*DF1,
*DF2,
*DF3,
*l_power,
*l_df0,
*l_df1,
*l_df2,
*l_df3;
FL_FORM *Debugger;
FL_OBJECT
*a0,
*a1,
*a2,
*a3,
*a4,
*a5,
*a6,
*a7,
*d0,
*d1,
*d2,
*d3,
*d4,
*d5,
*d6,
*d7,
*usp,
*isp,
*msp,
*vbr,
*pc,
*adress,
*imask,
*Output,
*f_s,
*f_m,
*f_x,
*f_n,
*f_z,
*f_v,
*f_c,
*f_t;
FL_FORM *Custom;
FL_OBJECT
*a_cra,
*a_crb,
*a_imask,
*a_tod,
*a_ta,
*a_tb,
*b_cra,
*b_crb,
*b_imask,
*b_tod,
*b_ta,
*b_tb,
*uae_dmacon,
*uae_intena,
*uae_intreq,
*uae_vpos,
*uae_hpos,
*uae_frames;
FL_FORM *FPU;
FL_OBJECT
*fpu0,
*fpu1,
*fpu2,
*fpu3,
*fpu4,
*fpu5,
*fpu6,
*fpu7,
*fpu_n,
*fpu_z,
*fpu_i,
*fpu_nan;
FL_FORM *Memory;
FL_OBJECT
*uaectrl_down,
*memory_field,
*uaectrl_up,
*memory_start;
FL_FORM *Disasm;
FL_OBJECT
*disasm_field,
*disasm_start,
*disasm_down,
*disasm_up;
static uaecptr nextpc;
static char* ccnames[] =
{ "T ","F ","HI","LS","CC","CS","NE","EQ",
"VC","VS","PL","MI","GE","LT","GT","LE" };
static void uaectrl_disasm(uaecptr addr, uaecptr *nextpc, int cnt,char *buffer)
{
uaecptr pc = m68k_getpc();
uaecptr newpc = 0;
int i,j,oldcnt=cnt;
char dummy[120];
char buf[120];
m68k_setpc(addr);
for (;cnt--;){
char instrname[20],*ccpt;
int opwords;
uae_u32 opcode;
struct mnemolookup *lookup;
struct instr *dp;
sprintf(buf,"%08lx: ", (unsigned long int)m68k_getpc());
if (oldcnt == 1) {
for(opwords = 0; opwords < 5; opwords++) {
sprintf(dummy, "%04x ", (unsigned int)(get_word(m68k_getpc()+opwords*2)));
strcat(buf, dummy);
}
}
opcode = nextiword();
if (cpufunctbl[opcode] == op_illg) {
opcode = 0x4AFC;
}
dp = table68k + opcode;
for (lookup = lookuptab;lookup->mnemo != dp->mnemo; lookup++)
;
strcpy(instrname,lookup->name);
ccpt = strstr(instrname,"cc");
if (ccpt != 0) {
strncpy(ccpt,ccnames[dp->cc], 2);
}
strcat(buf, instrname);
switch(dp->size){
case sz_byte: strcat(buf,".B "); break;
case sz_word: strcat(buf,".W "); break;
case sz_long: strcat(buf,".L "); break;
default: strcat(buf," ");break;
}
if (dp->suse) {
newpc = m68k_getpc() + ShowEA(dp->sreg, dp->smode, dp->size, buf);
}
if (dp->suse && dp->duse)
strcat(buf,",");
if (dp->duse) {
newpc = m68k_getpc() + ShowEA(dp->dreg, dp->dmode, dp->size, buf);
}
if (ccpt != 0) {
if (cctrue(dp->cc))
sprintf(dummy, " == %08lx (TRUE)", (unsigned long int)newpc);
else
sprintf(dummy, " == %08lx (FALSE)", (unsigned long int)newpc);
strcat(buf, dummy);
} else if ((opcode & 0xff00) == 0x6100) { /* BSR */
sprintf(dummy, " == %08lx", (unsigned long int)newpc);
strcat(buf, dummy);
}
strcat(buffer,buf);
if(oldcnt > 1) {
strcat(buffer, "\n");
}
}
if (nextpc)
*nextpc = m68k_getpc();
m68k_setpc(pc);
}
/* callbacks for form Control */
static void ctrl_insert(FL_OBJECT *ob, long data)
{
/* fill-in code for callback */
const char *buf;
char buffer[256],path[PATH_MAX+2];
int i=0,j,len;
#ifdef HAVE_GETCWD
getcwd(path, PATH_MAX);
#else
getwd(path);
#endif
buf=fl_show_fselector("Disk-Image",path,"*.adf*","");
if(buf!=0) {
len=strlen(buf);
if(len!=0){
for(i = len; i > 0 && buf[i] != '/'; i--)
;
for(j = 0; j <= i; j++)
path[j]=buf[j];
path[j]=0;
chdir(path);
for(i = 0, j = 0; buf[i] != 0; i++)
if(buf[i] == '/')
j=i;
j++;
for(i = j; buf[i] != 0; i++)
buffer[i-j] = buf[i];
buffer[i-j]=0;
} else {
buffer[0]=0;
}
if(ob==I_df0) {
fl_set_object_label(DF0,buffer);
fl_redraw_object(DF0);
if (disk_empty(0)) disk_insert(0,buf);
}
if(ob==I_df1) {
fl_set_object_label(DF1,buffer);
fl_redraw_object(DF1);
if (disk_empty(1)) disk_insert(1,buf);
}
if(ob==I_df2) {
fl_set_object_label(DF2,buffer);
fl_redraw_object(DF2);
if (disk_empty(2)) disk_insert(2,buf);
}
if(ob==I_df3) {
fl_set_object_label(DF3,buffer);
fl_redraw_object(DF3);
if (disk_empty(3)) disk_insert(3,buf);
}
}
}
static void ctrl_reset(FL_OBJECT *ob, long data)
{
uae_reset ();
}
static void ctrl_debug(FL_OBJECT *ob, long data)
{
fl_hide_form(Control);
fl_show_form(Debugger,FL_PLACE_CENTER,FL_FULLBORDER,"UAE - Debuger");
fl_deactivate_object(f_s);
fl_deactivate_object(f_m);
fl_deactivate_object(f_x);
fl_deactivate_object(f_n);
fl_deactivate_object(f_z);
fl_deactivate_object(f_v);
fl_deactivate_object(f_c);
fl_deactivate_object(f_t);
fpu = 0;
custom = 0;
activate_debugger ();
}
static void ctrl_exit(FL_OBJECT *ob, long data)
{
if (fl_show_question("Do you really want to quit ??","","")!=0)
uae_quit ();
}
static void ctrl_eject(FL_OBJECT *ob, long data)
{
if(ob==E_df0) {
fl_set_object_label(DF0,"");
fl_redraw_object(DF0);
disk_eject(0);
}
if(ob==E_df1) {
fl_set_object_label(DF1,"");
fl_redraw_object(DF1);
disk_eject(1);
}
if(ob==E_df2) {
fl_set_object_label(DF2,"");
fl_redraw_object(DF2);
disk_eject(2);
}
if(ob==E_df3) {
fl_set_object_label(DF3,"");
fl_redraw_object(DF3);
disk_eject(3);
}
}
/* callbacks for form Debugger */
static void ctrl_custom(FL_OBJECT *ob, long data)
{
if (custom) {
fl_hide_form(Custom);
custom = 0;
} else {
fl_show_form(Custom,FL_PLACE_CENTER,FL_FULLBORDER,"Custom");
custom = 1;
}
}
static void ctrl_fpu(FL_OBJECT *ob, long data)
{
/* fill-in code for callback */
if (fpu) {
fl_hide_form(FPU);
fpu = 0;
} else {
fl_show_form(FPU,FL_PLACE_CENTER,FL_FULLBORDER,"FPU");
fl_deactivate_object(fpu_n);
fl_deactivate_object(fpu_z);
fl_deactivate_object(fpu_i);
fl_deactivate_object(fpu_nan);
fpu = 1;
}
}
static void x_step(void)
{
skipaddr = nextpc;
do_skip = 1;
regs.spcflags |= SPCFLAG_BRK;
}
static void xgui_go(void)
{
m68k_setpc (xgui_debug_adress);
debugger_active = 0;
debugging = 0;
fl_activate_object(f_x);
fl_trigger_object(f_x);
fl_deactivate_object(f_x);
exit_debug=1;
}
static void xgui_forward(void)
{
skipaddr = xgui_debug_adress;
do_skip = 1;
regs.spcflags |= SPCFLAG_BRK;
fl_activate_object(f_x);
fl_trigger_object(f_x);
fl_deactivate_object(f_x);
exit_debug=1;
}
static void xgui_memupdate(void)
{
int lines=17;
char buffer[2048];
char buf[10],ascii[9];
uae_s32 addr=xgui_memory_adress;
buffer[0] = 0;
for (; lines--;){
int i;
sprintf(buf, "%08lx: ", addr);
strcat(buffer, buf);
for(i = 0; i< 8; i++) {
uae_u8 j = get_byte(addr);
if(isprint(j))
ascii[i]=j;
else
ascii[i]='.';
sprintf(buf,"%02x ",j);
strcat(buffer, buf);
addr += 1;
}
ascii[8] = 0;
strcat(buffer,ascii);
sprintf(buf,"\n");
strcat(buffer,buf);
}
fl_set_object_label(memory_field, buffer);
sprintf(buf, "0x%08lx", xgui_memory_adress);
fl_set_input(memory_start, buf);
}
static void xgui_disasmupdate(void)
{
char buffer[4048];
char buf[100];
int lines=17;
uae_s32 dummy=xgui_disasm_adress;
buffer[0]=0;
uaectrl_disasm(dummy,NULL,17,buffer);
fl_set_object_label(disasm_field,buffer);
sprintf(buf,"0x%08lx",xgui_disasm_adress);
fl_set_input(disasm_start,buf);
#if 0
for(;;)
;
#endif
}
static void ctrl_mem(FL_OBJECT *ob, long data)
{
if(!memory) {
fl_show_form(Memory,FL_PLACE_CENTER,FL_FULLBORDER,"Memory Browser");
memory=1;
xgui_memory_adress=xgui_debug_adress;
xgui_memupdate();
} else {
fl_hide_form(Memory);
memory=0;
}
}
static void ctrl_disasm(FL_OBJECT *ob, long data)
{
/* the xgui_disasmupdate() function segfaults; therefore this function
is disabled */
#if 1
if(!disasm) {
fl_show_form(Disasm,FL_PLACE_CENTER,FL_FULLBORDER,"Disassembler");
disasm = 1;
xgui_disasm_adress=xgui_debug_adress;
xgui_disasmupdate();
} else {
fl_hide_form(Disasm);
disasm=0;
}
#else
fl_show_alert("Sorry","This function isn't available yet",NULL,0);
#endif
}
static void ctrl_debug_exit(FL_OBJECT *ob, long data)
{
fl_hide_form(Debugger);
if(fpu) fl_hide_form(FPU);
if(custom) fl_hide_form(Custom);
if(memory) fl_hide_form(Memory);
if(disasm) fl_hide_form(Disasm);
fpu = custom = memory = disasm = 0;
fl_show_form(Control,FL_PLACE_CENTER,FL_FULLBORDER,"UAE - Control");
fl_activate_object(f_x);
fl_trigger_object(f_x);
fl_deactivate_object(f_x);
debugger_active = 0;
debugging = 0;
exit_debug=1;
}
static void ctrl_step(FL_OBJECT *ob, long data)
{
/* fill-in code for callback */
regs.spcflags |= SPCFLAG_BRK;
debugging=1;
exit_debug=0;
fl_activate_object(f_s);
fl_trigger_object(f_s);
fl_deactivate_object(f_s);
}
static void ctrl_next(FL_OBJECT *ob, long data)
{
/* fill-in code for callback */
x_step();
debugging=1;
exit_debug=0;
fl_activate_object(f_s);
fl_trigger_object(f_s);
fl_deactivate_object(f_s);
}
static void ctrl_go(FL_OBJECT *ob, long data)
{
/* fill-in code for callback */
xgui_go();
ctrl_debug_exit(NULL,0);
}
static void ctrl_forward(FL_OBJECT *ob, long data)
{
/* fill-in code for callback */
xgui_forward();
}
static void ctrl_address(FL_OBJECT *ob, long data)
{
/* fill-in code for callback */
xgui_debug_adress=strtol(fl_get_input(adress),NULL,0);
}
/* callbacks for form Memory */
static void change_memory_start(FL_OBJECT *ob, long data)
{
if(ob==uaectrl_up) xgui_memory_adress-=8;
else if(ob==uaectrl_down) xgui_memory_adress+=8;
else xgui_memory_adress=strtol(fl_get_input(ob),NULL,16);
xgui_memupdate();
}
/* callbacks for form Disasm */
static void change_disasm_start(FL_OBJECT *ob, long data)
{
if(ob==disasm_up) xgui_disasm_adress-=2;
else if(ob==disasm_down) xgui_disasm_adress+=2;
else xgui_disasm_adress=strtol(fl_get_input(ob),NULL,0);
xgui_disasmupdate();
}
void activate_debugger(void)
{
do_skip = 0;
if (debugger_active)
return;
debugger_active = 1;
regs.spcflags |= SPCFLAG_BRK;
debugging = 1;
use_debugger = 1;
}
static int firsthist = 0;
static int lasthist = 0;
#ifdef NEED_TO_DEBUG_BADLY
static struct regstruct history[MAX_HIST];
static union flagu historyf[MAX_HIST];
#else
static uaecptr history[MAX_HIST];
#endif
static void uaectrl_update(void);
/* external variables/functions from cia.c */
void x_dumpcustom(void)
{
char buf[20];
sprintf(buf,"%x",(unsigned int)DMACONR());
fl_set_object_label(uae_dmacon,buf);
sprintf(buf,"%x",(unsigned int)intena);
fl_set_object_label(uae_intena,buf);
sprintf(buf,"%x",(unsigned int)intreq);
fl_set_object_label(uae_intreq,buf);
sprintf(buf,"%x",(unsigned int)vpos);
fl_set_object_label(uae_vpos,buf);
sprintf(buf,"%x",(unsigned int)current_hpos());
fl_set_object_label(uae_hpos,buf);
if(timeframes)
sprintf(buf,"%d",frametime/timeframes);
else
buf[0]=0;
fl_set_object_label(uae_frames,buf);
}
void x_dumpcia(void)
{
char buf[20];
sprintf(buf,"%02x",(unsigned int)ciaacra);
fl_set_object_label(a_cra,buf);
sprintf(buf,"%02x",(unsigned int)ciaacrb);
fl_set_object_label(a_crb,buf);
sprintf(buf,"%02x",(unsigned int)ciaaimask);
fl_set_object_label(a_imask,buf);
sprintf(buf,"%08lx %7s",(unsigned int)ciaatod,ciaatlatch ? " latched" : "");
fl_set_object_label(a_tod,buf);
sprintf(buf,"%04lx",(unsigned long int)ciaata);
fl_set_object_label(a_ta,buf);
sprintf(buf,"%04lx",(unsigned long int)ciaatb);
fl_set_object_label(a_tb,buf);
sprintf(buf,"%02x",(unsigned int)ciabcra);
fl_set_object_label(b_cra,buf);
sprintf(buf,"%02x",(unsigned int)ciabcrb);
fl_set_object_label(b_crb,buf);
sprintf(buf,"%02x",(unsigned int)ciabimask);
fl_set_object_label(b_imask,buf);
sprintf(buf,"%08lx %s",(unsigned long int)ciabtod,ciabtlatch ? " latched" : "");
fl_set_object_label(b_tod,buf);
sprintf(buf,"%04x",(unsigned int)ciabta);
fl_set_object_label(b_ta,buf);
sprintf(buf,"%04x",(unsigned int)ciabtb);
fl_set_object_label(b_tb,buf);
}
void uaectrl_update(void)
{
char buf[120];
fl_freeze_form(Debugger);
xgui_debug_adress=m68k_getpc();
sprintf(buf,"0x%08lx", (unsigned long int)xgui_debug_adress);
fl_set_input(adress,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,0));
fl_set_object_label(a0,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,1));
fl_set_object_label(a1,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,2));
fl_set_object_label(a2,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,3));
fl_set_object_label(a3,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,4));
fl_set_object_label(a4,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,5));
fl_set_object_label(a5,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,6));
fl_set_object_label(a6,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,7));
fl_set_object_label(a7,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,0));
fl_set_object_label(d0,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,1));
fl_set_object_label(d1,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,2));
fl_set_object_label(d2,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,3));
fl_set_object_label(d3,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,4));
fl_set_object_label(d4,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,5));
fl_set_object_label(d5,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,6));
fl_set_object_label(d6,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,7));
fl_set_object_label(d7,buf);
if (regs.s == 0) regs.usp = m68k_areg(regs,7);
if (regs.s && regs.m) regs.msp = m68k_areg(regs,7);
if (regs.s && regs.m == 0) regs.isp = m68k_areg(regs,7);
sprintf(buf,"%08lx",regs.usp);
fl_set_object_label(usp,buf);
sprintf(buf,"%08lx",regs.msp);
fl_set_object_label(msp,buf);
sprintf(buf,"%08lx",regs.isp);
fl_set_object_label(isp,buf);
sprintf(buf,"%08lx",regs.vbr);
fl_set_object_label(vbr,buf);
sprintf(buf,"%d",regs.intmask);
fl_set_object_label(imask,buf);
sprintf(buf,"%08lx", (unsigned long int)m68k_getpc());
fl_set_object_label(pc,buf);
fl_set_button(f_t,regs.t0);
fl_set_button(f_s,regs.s);
fl_set_button(f_m,regs.m);
fl_set_button(f_x,XFLG);
fl_set_button(f_n,NFLG);
fl_set_button(f_z,ZFLG);
fl_set_button(f_v,VFLG);
fl_set_button(f_c,CFLG);
sprintf(buf,"%g",regs.fp[0]);
fl_set_object_label(fpu0,buf);
sprintf(buf,"%g",regs.fp[1]);
fl_set_object_label(fpu1,buf);
sprintf(buf,"%g",regs.fp[2]);
fl_set_object_label(fpu2,buf);
sprintf(buf,"%g",regs.fp[3]);
fl_set_object_label(fpu3,buf);
sprintf(buf,"%g",regs.fp[4]);
fl_set_object_label(fpu4,buf);
sprintf(buf,"%g",regs.fp[5]);
fl_set_object_label(fpu5,buf);
sprintf(buf,"%g",regs.fp[6]);
fl_set_object_label(fpu6,buf);
sprintf(buf,"%g",regs.fp[7]);
fl_set_object_label(fpu7,buf);
fl_set_button(fpu_n,(regs.fpsr & 0x8000000) != 0);
fl_set_button(fpu_z,(regs.fpsr & 0x4000000) != 0);
fl_set_button(fpu_i,(regs.fpsr & 0x2000000) != 0);
fl_set_button(fpu_nan,(regs.fpsr & 0x1000000) != 0);
uaectrl_disasm(m68k_getpc(),&nextpc,1,buf);
fl_set_object_label(Output,buf);
fl_unfreeze_form(Debugger);
fl_freeze_form(Custom);
x_dumpcia();
x_dumpcustom();
fl_unfreeze_form(Custom);
}
void debug(void)
{
FL_OBJECT *obj;
bogusframe = 1;
if (do_skip && (m68k_getpc() != skipaddr/* || regs.a[0] != 0x1e558*/)) {
regs.spcflags |= SPCFLAG_BRK;
return;
}
do_skip = 0;
#ifdef NEED_TO_DEBUG_BADLY
history[lasthist] = regs;
historyf[lasthist] = regflags;
#else
history[lasthist] = m68k_getpc();
#endif
if (++lasthist == MAX_HIST) lasthist = 0;
if (lasthist == firsthist) {
if (++firsthist == MAX_HIST) firsthist = 0;
}
do{
uaectrl_update();
obj = fl_do_forms();
if(exit_debug == 0) { debugging = 1; exit_debug = 2; return; }
if(exit_debug == 1) { debugging = 0; exit_debug = 2; return; }
} while(1);
}
int speed_up_counter;
static void create_form_Control(void)
{
FL_OBJECT *obj;
if (Control)
return;
Control = fl_bgn_form(FL_NO_BOX,380,300);
obj = fl_add_box(FL_UP_BOX,0,0,380,300,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,10,20,360,270,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,20,30,330,50,"");
udf0 = fl_bgn_group();
obj = fl_add_frame(FL_ENGRAVED_FRAME,20,100,340,180,"");
fl_end_group();
obj = fl_add_frame(FL_DOWN_FRAME,30,240,280,30,"");
I_df3 = obj = fl_add_button(FL_NORMAL_BUTTON,260,240,50,30,"Insert");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_insert,0);
obj = fl_add_frame(FL_DOWN_FRAME,30,120,280,30,"");
DF0 = obj = fl_add_text(FL_NORMAL_TEXT,70,120,140,30,"df0.adf");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
Reset = obj = fl_add_button(FL_NORMAL_BUTTON,30,40,70,30,"Reset");
fl_set_button_shortcut(obj,"R",1);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_reset,0);
Debug = obj = fl_add_button(FL_NORMAL_BUTTON,130,40,60,30,"Debug");
fl_set_button_shortcut(obj,"D",1);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_debug,0);
Exit = obj = fl_add_button(FL_NORMAL_BUTTON,220,40,60,30,"Exit");
fl_set_button_shortcut(obj,"E",1);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_exit,0);
Power = obj = fl_add_button(FL_NORMAL_BUTTON,380,60,40,20,"");
fl_set_object_boxtype(obj,FL_NO_BOX);
fl_set_object_color(obj,FL_BLACK,FL_RED);
Text_1 = obj = fl_add_text(FL_NORMAL_TEXT,140,10,100,20,"UAE - Control");
fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
Text_2 = obj = fl_add_text(FL_NORMAL_TEXT,140,90,110,20,"Floppy Drives");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
obj = fl_add_frame(FL_DOWN_FRAME,30,160,280,30,"");
obj = fl_add_frame(FL_DOWN_FRAME,30,200,280,30,"");
E_df0 = obj = fl_add_button(FL_NORMAL_BUTTON,210,120,50,30,"Eject");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_eject,0);
I_df0 = obj = fl_add_button(FL_NORMAL_BUTTON,260,120,50,30,"Insert");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_insert,0);
E_df1 = obj = fl_add_button(FL_NORMAL_BUTTON,210,160,50,30,"Eject");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_eject,0);
I_df1 = obj = fl_add_button(FL_NORMAL_BUTTON,260,160,50,30,"Insert");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_insert,0);
E_df2 = obj = fl_add_button(FL_NORMAL_BUTTON,210,200,50,30,"Eject");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_eject,0);
I_df2 = obj = fl_add_button(FL_NORMAL_BUTTON,260,200,50,30,"Insert");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_insert,0);
E_df3 = obj = fl_add_button(FL_NORMAL_BUTTON,210,240,50,30,"Eject");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_eject,0);
Led_0 = obj = fl_add_button(FL_NORMAL_BUTTON,390,140,30,40,"");
fl_set_object_boxtype(obj,FL_NO_BOX);
fl_set_object_color(obj,FL_COL1,FL_GREEN);
obj = fl_add_text(FL_NORMAL_TEXT,30,120,40,30,"DF0 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,160,40,30,"DF1 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,200,40,30,"DF2 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,240,40,30,"DF3 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
DF1 = obj = fl_add_text(FL_NORMAL_TEXT,70,160,140,30,"df1.adf");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
DF2 = obj = fl_add_text(FL_NORMAL_TEXT,70,200,140,30,"df2.adf");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
DF3 = obj = fl_add_text(FL_NORMAL_TEXT,70,240,140,30,"df3.adf");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
l_power = obj = fl_add_text(FL_NORMAL_TEXT,300,50,30,10,"");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_color(obj,FL_BLACK,FL_MCOL);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
l_df0 = obj = fl_add_text(FL_NORMAL_TEXT,320,130,30,10,"");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_color(obj,FL_BLACK,FL_GREEN);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
l_df1 = obj = fl_add_text(FL_NORMAL_TEXT,320,170,30,10,"");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_color(obj,FL_BLACK,FL_GREEN);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
l_df2 = obj = fl_add_text(FL_NORMAL_TEXT,320,210,30,10,"");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_color(obj,FL_BLACK,FL_GREEN);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
l_df3 = obj = fl_add_text(FL_NORMAL_TEXT,320,250,30,10,"");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_color(obj,FL_BLACK,FL_GREEN);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_end_form();
}
/*---------------------------------------*/
static void create_form_Debugger(void)
{
FL_OBJECT *obj;
if (Debugger)
return;
Debugger = fl_bgn_form(FL_NO_BOX,460,540);
obj = fl_add_box(FL_UP_BOX,0,0,460,540,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,40,330,380,30,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,440,520,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,20,40,420,370,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,20,420,420,50,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,20,470,420,50,"");
obj = fl_add_text(FL_NORMAL_TEXT,150,0,130,30,"UAE - Debugger");
fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,140,30,160,30,"Prozessor Registers");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,30,70,40,30,"A0 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,100,40,30,"A1 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,130,40,30,"A2 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,160,40,30,"A3 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,190,40,30,"A4 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,220,40,30,"A5 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,250,40,30,"A6 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,30,280,40,30,"A7 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,160,70,40,30,"D0 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,160,100,40,30,"D1 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,160,130,40,30,"D2 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,160,160,40,30,"D3 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,160,190,40,30,"D4 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,160,220,40,30,"D5 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,160,250,40,30,"D6 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,160,280,40,30,"D7 :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
a0 = obj = fl_add_text(FL_NORMAL_TEXT,70,70,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a1 = obj = fl_add_text(FL_NORMAL_TEXT,70,100,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a2 = obj = fl_add_text(FL_NORMAL_TEXT,70,130,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a3 = obj = fl_add_text(FL_NORMAL_TEXT,70,160,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a4 = obj = fl_add_text(FL_NORMAL_TEXT,70,190,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a5 = obj = fl_add_text(FL_NORMAL_TEXT,70,220,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a6 = obj = fl_add_text(FL_NORMAL_TEXT,70,250,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a7 = obj = fl_add_text(FL_NORMAL_TEXT,70,280,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
d0 = obj = fl_add_text(FL_NORMAL_TEXT,200,70,70,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
d1 = obj = fl_add_text(FL_NORMAL_TEXT,200,100,70,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
d2 = obj = fl_add_text(FL_NORMAL_TEXT,200,130,70,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
d3 = obj = fl_add_text(FL_NORMAL_TEXT,200,160,70,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
d4 = obj = fl_add_text(FL_NORMAL_TEXT,200,190,70,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
d5 = obj = fl_add_text(FL_NORMAL_TEXT,200,220,70,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
d6 = obj = fl_add_text(FL_NORMAL_TEXT,200,250,70,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
d7 = obj = fl_add_text(FL_NORMAL_TEXT,200,280,70,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,280,70,40,30,"USP");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
usp = obj = fl_add_text(FL_NORMAL_TEXT,330,70,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,280,100,40,30,"ISP");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,280,130,40,30,"MSP");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,280,160,40,30,"VBR");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
isp = obj = fl_add_text(FL_NORMAL_TEXT,330,100,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
msp = obj = fl_add_text(FL_NORMAL_TEXT,330,130,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
vbr = obj = fl_add_text(FL_NORMAL_TEXT,330,160,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
pc = obj = fl_add_text(FL_NORMAL_TEXT,330,220,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,280,220,40,30,"PC");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_button(FL_NORMAL_BUTTON,30,480,70,30,"Custom");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_custom,0);
obj = fl_add_button(FL_NORMAL_BUTTON,110,480,70,30,"FPU");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_fpu,0);
obj = fl_add_button(FL_NORMAL_BUTTON,190,480,70,30,"Memory");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_mem,0);
obj = fl_add_button(FL_NORMAL_BUTTON,270,480,90,30,"Disassembler");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_disasm,0);
obj = fl_add_button(FL_NORMAL_BUTTON,370,480,60,30,"Exit");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_debug_exit,0);
obj = fl_add_button(FL_NORMAL_BUTTON,30,430,70,30,"Step");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_step,0);
obj = fl_add_button(FL_NORMAL_BUTTON,110,430,70,30,"Next");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_next,0);
obj = fl_add_button(FL_NORMAL_BUTTON,190,430,70,30,"Go");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_go,0);
obj = fl_add_button(FL_NORMAL_BUTTON,270,430,70,30,"Forward");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_forward,0);
adress = obj = fl_add_input(FL_NORMAL_INPUT,350,430,80,30,"");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_callback(obj,ctrl_address,0);
imask = obj = fl_add_text(FL_NORMAL_TEXT,330,250,80,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,280,250,40,30,"IMask");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
Output = obj = fl_add_text(FL_NORMAL_TEXT,30,370,400,30,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,40,330,40,30,"Flags");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
f_s = obj = fl_add_checkbutton(FL_PUSH_BUTTON,90,330,40,30,"S");
f_m = obj = fl_add_checkbutton(FL_PUSH_BUTTON,130,330,40,30,"M");
f_x = obj = fl_add_checkbutton(FL_PUSH_BUTTON,170,330,40,30,"X");
f_n = obj = fl_add_checkbutton(FL_PUSH_BUTTON,210,330,40,30,"N");
f_z = obj = fl_add_checkbutton(FL_PUSH_BUTTON,250,330,40,30,"Z");
f_v = obj = fl_add_checkbutton(FL_PUSH_BUTTON,290,330,40,30,"V");
f_c = obj = fl_add_checkbutton(FL_PUSH_BUTTON,330,330,40,30,"C");
f_t = obj = fl_add_checkbutton(FL_PUSH_BUTTON,370,330,40,30,"T");
fl_end_form();
}
/*---------------------------------------*/
static void create_form_Custom(void)
{
FL_OBJECT *obj;
if (Custom)
return;
Custom = fl_bgn_form(FL_NO_BOX,340,290);
obj = fl_add_box(FL_UP_BOX,0,0,340,290,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,320,270,"");
obj = fl_add_text(FL_NORMAL_TEXT,100,0,130,20,"Custom Chips");
fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,20,50,50,20,"CRA");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,70,50,20,"CRB");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,90,50,20,"IMask");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,110,50,20,"TOD");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,130,50,20,"TA");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,150,50,20,"TB");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_frame(FL_ENGRAVED_FRAME,70,30,110,160,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,190,30,110,160,"");
obj = fl_add_text(FL_NORMAL_TEXT,110,20,30,20,"A");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,230,20,30,20,"B");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
a_cra = obj = fl_add_text(FL_NORMAL_TEXT,80,50,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a_crb = obj = fl_add_text(FL_NORMAL_TEXT,80,70,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a_imask = obj = fl_add_text(FL_NORMAL_TEXT,80,90,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a_tod = obj = fl_add_text(FL_NORMAL_TEXT,80,110,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a_ta = obj = fl_add_text(FL_NORMAL_TEXT,80,130,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
a_tb = obj = fl_add_text(FL_NORMAL_TEXT,80,150,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
b_cra = obj = fl_add_text(FL_NORMAL_TEXT,200,50,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
b_crb = obj = fl_add_text(FL_NORMAL_TEXT,200,70,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
b_imask = obj = fl_add_text(FL_NORMAL_TEXT,200,90,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
b_tod = obj = fl_add_text(FL_NORMAL_TEXT,200,110,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
b_ta = obj = fl_add_text(FL_NORMAL_TEXT,200,130,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
b_tb = obj = fl_add_text(FL_NORMAL_TEXT,200,150,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
uae_dmacon = obj = fl_add_text(FL_NORMAL_TEXT,90,210,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,20,210,70,20,"DMACON");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,230,70,20,"INTENA");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,250,70,20,"INTREQ");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
uae_intena = obj = fl_add_text(FL_NORMAL_TEXT,90,230,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
uae_intreq = obj = fl_add_text(FL_NORMAL_TEXT,90,250,90,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,190,210,50,20,"VPOS");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
uae_vpos = obj = fl_add_text(FL_NORMAL_TEXT,250,210,50,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,190,230,50,20,"HPOS");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
uae_hpos = obj = fl_add_text(FL_NORMAL_TEXT,250,230,50,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,190,250,60,20,"Frames");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
uae_frames = obj = fl_add_text(FL_NORMAL_TEXT,250,250,50,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_end_form();
}
/*---------------------------------------*/
static void create_form_FPU(void)
{
FL_OBJECT *obj;
if (FPU)
return;
FPU = fl_bgn_form(FL_NO_BOX,300,160);
obj = fl_add_box(FL_UP_BOX,0,0,300,160,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,280,140,"");
obj = fl_add_text(FL_NORMAL_TEXT,130,0,40,20,"FPU");
fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
obj = fl_add_text(FL_NORMAL_TEXT,20,30,50,20,"FP0");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,50,50,20,"FP1");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,70,50,20,"FP2");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,150,30,50,20,"FP4");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,150,50,50,20,"FP5");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,150,70,50,20,"FP6");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,20,90,50,20,"FP3");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,150,90,50,20,"FP7");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
fpu0 = obj = fl_add_text(FL_NORMAL_TEXT,60,30,80,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fpu1 = obj = fl_add_text(FL_NORMAL_TEXT,60,50,80,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fpu2 = obj = fl_add_text(FL_NORMAL_TEXT,60,70,80,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fpu3 = obj = fl_add_text(FL_NORMAL_TEXT,60,90,80,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fpu4 = obj = fl_add_text(FL_NORMAL_TEXT,190,30,80,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fpu5 = obj = fl_add_text(FL_NORMAL_TEXT,190,50,80,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fpu6 = obj = fl_add_text(FL_NORMAL_TEXT,190,70,80,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fpu7 = obj = fl_add_text(FL_NORMAL_TEXT,190,90,80,20,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_color(obj,FL_MCOL,FL_MCOL);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fpu_n = obj = fl_add_checkbutton(FL_PUSH_BUTTON,30,120,40,30,"N");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fpu_z = obj = fl_add_checkbutton(FL_PUSH_BUTTON,90,120,40,30,"Z");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fpu_i = obj = fl_add_checkbutton(FL_PUSH_BUTTON,150,120,40,30,"I");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fpu_nan = obj = fl_add_checkbutton(FL_PUSH_BUTTON,210,120,60,30,"NAN");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_end_form();
}
/*---------------------------------------*/
static void create_form_Memory(void)
{
FL_OBJECT *obj;
if (Memory)
return;
Memory = fl_bgn_form(FL_NO_BOX,440,380);
obj = fl_add_box(FL_UP_BOX,0,0,440,380,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,420,360,"");
uaectrl_down = obj = fl_add_button(FL_TOUCH_BUTTON,20,330,30,30,"@2");
fl_set_object_callback(obj,change_memory_start,0);
memory_field = obj = fl_add_text(FL_NORMAL_TEXT,20,30,400,290,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_FIXED_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT,140,0,140,20,"Memory Browser");
fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
uaectrl_up = obj = fl_add_button(FL_TOUCH_BUTTON,390,330,30,30,"@8");
fl_set_object_callback(obj,change_memory_start,0);
memory_start = obj = fl_add_input(FL_NORMAL_INPUT,150,330,180,30,"");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lstyle(obj,FL_FIXED_STYLE);
fl_set_object_callback(obj,change_memory_start,0);
obj = fl_add_text(FL_NORMAL_TEXT,90,330,50,30,"Start :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
fl_end_form();
}
/*---------------------------------------*/
static void create_form_Disasm(void)
{
FL_OBJECT *obj;
if (Disasm)
return;
Disasm = fl_bgn_form(FL_NO_BOX,530,370);
obj = fl_add_box(FL_UP_BOX,0,0,530,370,"");
obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,510,350,"");
obj = fl_add_text(FL_NORMAL_TEXT,160,0,120,20,"Disassembler");
fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
disasm_field = obj = fl_add_text(FL_NORMAL_TEXT,20,20,490,290,"");
fl_set_object_boxtype(obj,FL_DOWN_BOX);
fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_FIXED_STYLE);
disasm_start = obj = fl_add_input(FL_NORMAL_INPUT,170,320,190,30,"");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lstyle(obj,FL_FIXED_STYLE);
fl_set_object_callback(obj,change_disasm_start,0);
obj = fl_add_text(FL_NORMAL_TEXT,110,320,50,30,"Start :");
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj,FL_BOLD_STYLE);
disasm_down = obj = fl_add_button(FL_NORMAL_BUTTON,20,320,30,30,"@2");
fl_set_object_callback(obj,change_disasm_start,0);
disasm_up = obj = fl_add_button(FL_NORMAL_BUTTON,470,320,30,30,"@8");
fl_set_object_callback(obj,change_disasm_start,0);
fl_end_form();
}
/*---------------------------------------*/
static void create_the_forms(void)
{
create_form_Control();
create_form_Debugger();
create_form_Custom();
create_form_FPU();
create_form_Memory();
create_form_Disasm();
}
/* end of forms stuff */
void gui_changesettings(void)
{
}
int gui_init(void)
{
int argc=1;
char *argv[] = { "uae", "" };
speed_up_counter = 10;
fl_initialize(&argc, argv, 0, 0, 0);
exit_debug=0;
create_the_forms();
/* fill-in form initialization code */
/* show the first form */
fl_show_form(Control,FL_PLACE_CENTER,FL_FULLBORDER,"Control");
fl_set_object_label(DF0, currprefs.df[0]);
fl_set_object_label(DF1, currprefs.df[1]);
fl_set_object_label(DF2, currprefs.df[2]);
fl_set_object_label(DF3, currprefs.df[3]);
return 1;
}
int gui_update(void)
{
fl_set_object_label(DF0,currprefs.df[0]);
fl_set_object_label(DF1,currprefs.df[1]);
fl_set_object_label(DF2,currprefs.df[2]);
fl_set_object_label(DF3,currprefs.df[3]);
fl_redraw_object(DF0);
fl_redraw_object(DF1);
fl_redraw_object(DF2);
fl_redraw_object(DF3);
return 0;
}
void gui_exit(void)
{
}
void gui_led(int led, int on)
{
if(on!=0){
switch(led){
case 0 : fl_set_object_color(l_power,FL_RED,FL_BLACK); break;
case 1 : fl_set_object_color(l_df0,FL_GREEN,FL_BLACK); break;
case 2 : fl_set_object_color(l_df1,FL_GREEN,FL_BLACK); break;
case 3 : fl_set_object_color(l_df2,FL_GREEN,FL_BLACK); break;
case 4 : fl_set_object_color(l_df3,FL_GREEN,FL_BLACK); break;
default: break;
}
} else {
switch(led){
case 0: fl_set_object_color(l_power,FL_BLACK,FL_BLACK); break;
case 1: fl_set_object_color(l_df0,FL_BLACK,FL_BLACK); break;
case 2: fl_set_object_color(l_df1,FL_BLACK,FL_BLACK); break;
case 3: fl_set_object_color(l_df2,FL_BLACK,FL_BLACK); break;
case 4: fl_set_object_color(l_df3,FL_BLACK,FL_BLACK); break;
default: break;
}
}
}
void gui_filename(int num, const char *name)
{
gui_update ();
}
void gui_handle_events(void)
{
if (--speed_up_counter == 0) {
fl_check_forms();
speed_up_counter = 20;
}
}